home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ABUSESRC.ZIP / AbuseSrc / macabuse / inc / specache.hpp < prev    next >
C/C++ Source or Header  |  1997-05-20  |  1KB  |  44 lines

  1. #ifndef __SPECACHE_HPP_
  2. #define __SPECACHE_HPP_
  3.  
  4. #include "specs.hpp"
  5.  
  6.  
  7. class spec_directory_cache
  8. {
  9.   class filename_node
  10.   {
  11.     public :
  12.     filename_node *left,*right,*next;
  13.     char *fn;
  14.     spec_directory *sd;
  15.     char *filename() { return fn; }
  16.     filename_node(char *filename, spec_directory *dir)
  17.     {
  18.       fn=(char *)memcpy(jmalloc(strlen(filename)+1,"spec_dir cache"),filename,strlen(filename)+1);
  19.       sd=dir;
  20.       next=left=right=0;      
  21.     }
  22.     ~filename_node()
  23.     {
  24.       jfree(fn);
  25.       delete sd;
  26.     }
  27.  
  28.     long size;
  29.   } *fn_root,*fn_list;
  30.   void clear(filename_node *f); // private recursive member  
  31.   long size;
  32.   public :
  33.   spec_directory *get_spec_directory(char *filename, bFILE *fp=NULL);
  34.   spec_directory_cache() { fn_root=0; size=0; }
  35.   void clear();                             // frees up all allocated memory
  36.   void load(bFILE *fp);
  37.   void save(bFILE *fp);
  38.   ~spec_directory_cache() { clear(); }
  39. } ;
  40.  
  41. extern spec_directory_cache sd_cache;
  42.  
  43. #endif
  44.